package com.je.app.view.popUp;

import javax.swing.JDialog;
import javax.swing.JTextField;
import javax.swing.JButton;

import com.je.app.control.ControlHabitacion;
import com.je.app.view.MainFrame;
import com.je.app.view.MainFrame.MessageType;

import java.awt.Color;
import java.awt.SystemColor;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.SwingConstants;
import java.awt.Font;
import java.awt.Insets;
import javax.swing.JSeparator;

public class FinTurno extends JDialog{
	private JTextField texthoraInicio;
	private JTextField txtUsuario;
	private JTextField txtContrasea;
	private JTextField txtHabitacin;
	private JTextField textnombreHabitacion;
	private JTextField txtTiempoRestante;
	private JTextField txtTiempoExtendido;
	private JTextField texthoraFin;
	private JTextField texttiempoTotal;
	private JTextField texttiempoExtendido;
	private JTextField txtMontoTurno;
	private JTextField textmontoTurno;
	private JTextField txtMontoConsumicin;
	private JTextField textmontoConsumicion;
	private JTextField txtMontoTotal;
	private JTextField textmontoTotal;
	private Double montoTotal;
	private JTextField txtInformacinDelTurno;
	private JSeparator separator;
	private JSeparator separator_1;
	private JSeparator separator_2;
	private JSeparator separator_3;


	public FinTurno(final String nombreHab,String horaInicio,String horaFin,String tiempoTotal,String tiempoExtendido, String montoTurno,final String montoConsumicion,String montoTotalText){
		setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);

		getContentPane().setLayout(null);
		montoTotal = new Double(montoTotalText);
		setSize(400,487);
		setResizable(false);
		setLocationRelativeTo(null);
		
		texthoraInicio = new JTextField(horaInicio);
		texthoraInicio.setHorizontalAlignment(SwingConstants.CENTER);
		texthoraInicio.setEditable(false);
		texthoraInicio.setBounds(210, 105, 86, 21);
		getContentPane().add(texthoraInicio);
		texthoraInicio.setColumns(10);
		
		txtUsuario = new JTextField();
		txtUsuario.setHorizontalAlignment(SwingConstants.RIGHT);
		txtUsuario.setText("Hora inicio:");
		txtUsuario.setBorder(null);
		txtUsuario.setEditable(false);
		txtUsuario.setColumns(10);
		txtUsuario.setBounds(129, 101, 55, 29);
		getContentPane().add(txtUsuario);
		
		txtContrasea = new JTextField();
		txtContrasea.setHorizontalAlignment(SwingConstants.RIGHT);
		txtContrasea.setText("Hora fin:");
		txtContrasea.setBorder(null);
		txtContrasea.setEditable(false);
		txtContrasea.setColumns(10);
		txtContrasea.setBounds(141, 137, 43, 29);
		getContentPane().add(txtContrasea);
		
		JButton buttonPosponer = new JButton("Posponer");
		buttonPosponer.setBackground(SystemColor.activeCaptionBorder);
		buttonPosponer.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				new PosponerFinalizacion(nombreHab);
				dispose();
			}
		});
		buttonPosponer.setBounds(201, 395, 95, 26);
		getContentPane().add(buttonPosponer);
		
		JButton btnFinalizarTurno = new JButton("Finalizar");
		btnFinalizarTurno.setBackground(SystemColor.activeCaptionBorder);
		btnFinalizarTurno.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				if(montoTotal==null) 
					MainFrame.getInstance().showMessage(MessageType.ERROR, "El monto ingresado no es valido");//ERROR -> EL MONTO INGRESADO NO ES VALIDO;
				else{
					double monto = new Double(textmontoTurno.getText());
					ControlHabitacion.getInstance().finalizarTurno(nombreHab, monto );
					dispose();
				}
				
			}
		});
		btnFinalizarTurno.setBounds(89, 395, 95, 27);
		getContentPane().add(btnFinalizarTurno);
		
		txtHabitacin = new JTextField();
		txtHabitacin.setHorizontalAlignment(SwingConstants.RIGHT);
		txtHabitacin.setFont(new Font("Tahoma", Font.BOLD, 12));
		txtHabitacin.setText("Habitaci\u00F3n:");
		txtHabitacin.setEditable(false);
		txtHabitacin.setColumns(10);
		txtHabitacin.setBorder(null);
		txtHabitacin.setBounds(105, 65, 79, 29);
		getContentPane().add(txtHabitacin);
		
		textnombreHabitacion = new JTextField(nombreHab);
		textnombreHabitacion.setFont(new Font("Tahoma", Font.BOLD, 12));
		textnombreHabitacion.setHorizontalAlignment(SwingConstants.CENTER);
		textnombreHabitacion.setEditable(false);
		textnombreHabitacion.setColumns(10);
		textnombreHabitacion.setBounds(210, 69, 86, 21);
		getContentPane().add(textnombreHabitacion);
		
		txtTiempoRestante = new JTextField();
		txtTiempoRestante.setHorizontalAlignment(SwingConstants.RIGHT);
		txtTiempoRestante.setText("Tiempo total:");
		txtTiempoRestante.setEditable(false);
		txtTiempoRestante.setColumns(10);
		txtTiempoRestante.setBorder(null);
		txtTiempoRestante.setBounds(120, 177, 64, 29);
		getContentPane().add(txtTiempoRestante);
		
		txtTiempoExtendido = new JTextField();
		txtTiempoExtendido.setHorizontalAlignment(SwingConstants.RIGHT);
		txtTiempoExtendido.setText("Tiempo extendido:");
		txtTiempoExtendido.setEditable(false);
		txtTiempoExtendido.setColumns(10);
		txtTiempoExtendido.setBorder(null);
		txtTiempoExtendido.setBounds(89, 217, 95, 29);
		getContentPane().add(txtTiempoExtendido);
		
		texthoraFin = new JTextField(horaFin);
		texthoraFin.setHorizontalAlignment(SwingConstants.CENTER);
		texthoraFin.setEditable(false);
		texthoraFin.setColumns(10);
		texthoraFin.setBounds(210, 145, 86, 21);
		getContentPane().add(texthoraFin);
		
		texttiempoTotal = new JTextField(tiempoTotal);
		texttiempoTotal.setHorizontalAlignment(SwingConstants.CENTER);
		texttiempoTotal.setEditable(false);
		texttiempoTotal.setColumns(10);
		texttiempoTotal.setBounds(210, 181, 86, 21);
		getContentPane().add(texttiempoTotal);
		
		texttiempoExtendido = new JTextField(tiempoExtendido);
		texttiempoExtendido.setHorizontalAlignment(SwingConstants.CENTER);
		texttiempoExtendido.setEditable(false);
		texttiempoExtendido.setColumns(10);
		texttiempoExtendido.setBounds(210, 221, 86, 21);
		getContentPane().add(texttiempoExtendido);
		
		txtMontoTurno = new JTextField();
		txtMontoTurno.setHorizontalAlignment(SwingConstants.RIGHT);
		txtMontoTurno.setText("Monto turno:");
		txtMontoTurno.setEditable(false);
		txtMontoTurno.setColumns(10);
		txtMontoTurno.setBorder(null);
		txtMontoTurno.setBounds(120, 257, 64, 29);
		getContentPane().add(txtMontoTurno);
		
		textmontoTurno = new JTextField(montoTurno);
		textmontoTurno.setHorizontalAlignment(SwingConstants.CENTER);
		textmontoTurno.setColumns(10);
		textmontoTurno.setBounds(210, 261, 86, 21);
		getContentPane().add(textmontoTurno);
		textmontoTurno.addKeyListener(new KeyListener(){

			public void keyPressed(KeyEvent arg0) {}
			public void keyReleased(KeyEvent arg0) {
				montoTotal = null;
				try{
					montoTotal = new Double(textmontoTurno.getText()) + new Double(montoConsumicion);
					textmontoTurno.setForeground(Color.BLUE);
					textmontoTotal.setText(""+montoTotal);
				}
				catch(Exception exc){
					textmontoTurno.setForeground(Color.RED);
					textmontoTotal.setText("");
				}
			}
			public void keyTyped(KeyEvent arg0) {}
			});
		
		txtMontoConsumicin = new JTextField();
		txtMontoConsumicin.setHorizontalAlignment(SwingConstants.RIGHT);
		txtMontoConsumicin.setText("Monto consumici\u00F3n:");
		txtMontoConsumicin.setEditable(false);
		txtMontoConsumicin.setColumns(10);
		txtMontoConsumicin.setBorder(null);
		txtMontoConsumicin.setBounds(89, 293, 95, 29);
		getContentPane().add(txtMontoConsumicin);
		
		textmontoConsumicion = new JTextField(montoConsumicion);
		textmontoConsumicion.setHorizontalAlignment(SwingConstants.CENTER);
		textmontoConsumicion.setEditable(false);
		textmontoConsumicion.setColumns(10);
		textmontoConsumicion.setBounds(210, 297, 86, 21);
		getContentPane().add(textmontoConsumicion);
		
		txtMontoTotal = new JTextField();
		txtMontoTotal.setHorizontalAlignment(SwingConstants.RIGHT);
		txtMontoTotal.setText("Monto total:");
		txtMontoTotal.setEditable(false);
		txtMontoTotal.setColumns(10);
		txtMontoTotal.setBorder(null);
		txtMontoTotal.setBounds(120, 333, 64, 29);
		getContentPane().add(txtMontoTotal);
		
		textmontoTotal = new JTextField(montoTotalText);
		textmontoTotal.setHorizontalAlignment(SwingConstants.CENTER);
		textmontoTotal.setEditable(false);
		textmontoTotal.setColumns(10);
		textmontoTotal.setBounds(210, 337, 86, 21);
		getContentPane().add(textmontoTotal);
		
		txtInformacinDelTurno = new JTextField();
		txtInformacinDelTurno.setText("Informaci\u00F3n del turno a finalizar");
		txtInformacinDelTurno.setMargin(new Insets(2, 14, 2, 2));
		txtInformacinDelTurno.setHorizontalAlignment(SwingConstants.CENTER);
		txtInformacinDelTurno.setFont(new Font("Tahoma", Font.PLAIN, 16));
		txtInformacinDelTurno.setEditable(false);
		txtInformacinDelTurno.setColumns(10);
		txtInformacinDelTurno.setBorder(null);
		txtInformacinDelTurno.setBounds(32, 21, 248, 20);
		getContentPane().add(txtInformacinDelTurno);
		
		separator = new JSeparator();
		separator.setBounds(22, 30, 348, 1);
		getContentPane().add(separator);
		
		separator_1 = new JSeparator();
		separator_1.setOrientation(SwingConstants.VERTICAL);
		separator_1.setForeground(Color.LIGHT_GRAY);
		separator_1.setBounds(369, 31, 1, 410);
		getContentPane().add(separator_1);
		
		separator_2 = new JSeparator();
		separator_2.setBounds(22, 440, 348, 1);
		getContentPane().add(separator_2);
		
		separator_3 = new JSeparator();
		separator_3.setOrientation(SwingConstants.VERTICAL);
		separator_3.setForeground(Color.LIGHT_GRAY);
		separator_3.setBounds(22, 31, 1, 410);
		getContentPane().add(separator_3);
		setTitle(" \u00A1Un turno ha finalizado!");
		setVisible(true);
	}
}
